﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.Security;
using SFsoftSite.Memberships;
using SFsoftSite.Profiles;
using BL;
using System.Data;

namespace SFsoftSite.Cliente
{
    public partial class AtualizarDados : System.Web.UI.Page
    {
        #region Atributos

        BLCliente _cliente;

        #endregion

        protected void Page_Load(object sender, EventArgs e)
        {
            this.Form.Enctype = "multipart/form-data";

            if (!IsPostBack)
            {
                if (!Roles.IsUserInRole("Cliente"))
                    Response.Redirect("~/Jogos/ListarJogos.aspx");

                SFProfile profile = SFProfile.GetProfile();

                if (profile.Cliente.Nome != null && profile.Cliente.Nome != "")
                {
                    txtNome.Text = profile.Cliente.Nome;
                    txtSenha.Text = profile.Cliente.Senha;
                    txtConfirmaSenha.Text = profile.Cliente.Senha;
                    txtEndereco.Text = profile.Cliente.Endereco;
                    txtTelefone.Text = profile.Cliente.Telefone;

                    hf.Value = profile.Cliente.ID.ToString();
                    hf2.Value = profile.Cliente.Email;

                    if (profile.Cliente.Foto != "" && profile.Cliente.Foto != null)
                        imgFotoCliente.Src = "../Resources/Images/Upload/Cliente/" + profile.Cliente.Foto;
                }
                else
                {
                    _cliente = new BLCliente();

                    DataTable dt = _cliente.GetClienteByEmail(HttpContext.Current.User.Identity.Name);

                    if (dt == null) Response.Redirect("~/Jogos/ListarJogos.aspx");

                    int idcli = Convert.ToInt32(dt.Rows[0]["ID"].ToString());
                    txtNome.Text = dt.Rows[0]["Nome"].ToString();
                    txtSenha.Text = dt.Rows[0]["Senha"].ToString();
                    txtConfirmaSenha.Text = dt.Rows[0]["Senha"].ToString();
                    txtEndereco.Text = dt.Rows[0]["Endereco"].ToString();
                    txtTelefone.Text = dt.Rows[0]["Telefone"].ToString();

                    hf.Value = idcli.ToString();
                    hf2.Value = dt.Rows[0]["Email"].ToString();

                    if (dt.Rows[0]["Foto"].ToString() != string.Empty)
                        imgFotoCliente.Src = "../Resources/Images/Upload/Cliente/" + dt.Rows[0]["Foto"].ToString();
                }
            }
        }

        protected void Atualizar_Click(object sender, EventArgs e)
        {
            string imagePath = "";
            string mensagem = "";

            Page.Validate();

            if (Page.IsValid)
            {
                _cliente = new BLCliente();

                if (FileUpload1.HasFile)
                {
                    imagePath = Server.MapPath("~/Resources/Images/Upload/Cliente/" + FileUpload1.FileName);

                    FileUpload1.SaveAs(imagePath);

                    mensagem = _cliente.UpdateCliente(Convert.ToInt32(hf.Value),
                        txtNome.Text,
                        txtSenha.Text,
                        txtEndereco.Text,
                        txtTelefone.Text,
                        FileUpload1.FileName);

                    SalvaProfile();

                    if (mensagem == "")
                        mensagem = "Os seus dados foram atualizados!";

                    ScriptManager.RegisterClientScriptBlock(this, GetType(), "Mensagem", "alert(' " + mensagem + "')", true);
                }
                else
                {
                    mensagem = "Selecione uma imagem!";
                    ScriptManager.RegisterClientScriptBlock(this, GetType(), "Mensagem", "alert(' " + mensagem + "')", true);
                }
            }
        }

        private void SalvaProfile()
        {
            SFProfile profile = SFProfile.GetProfile();

            profile.Cliente.ID = Convert.ToInt32(hf.Value);
            profile.Cliente.Nome = txtNome.Text;
            profile.Cliente.Senha = txtSenha.Text;
            profile.Cliente.Endereco = txtEndereco.Text;
            profile.Cliente.Telefone = txtTelefone.Text;
            profile.Cliente.Foto = FileUpload1.FileName;
            profile.Cliente.Email = hf2.Value;

            profile.Save();
        }
    }
}